<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            margin: 100px auto;
            background-color: pink;
            height: 100px;
            width: 100px;
        }
    </style>
</head>

<body>
    <div>123</div><br>
    <ul>
        <li>123</li>
        <li>123</li>
        <li>123</li>
    </ul>
    <br>
    <img src="事件对象常用属性和方法.png" alt="">
    <script>
        //  事件对象
        var div = document.querySelector('div');
        // event 就是一个事件对象 写在监听函数的小括号里面 当形参看
        // 事件对象只有有了事件才会存在，系统自动创建
        // 事件对象是事件一系列相关的数据集合 跟事件相关 比如鼠标的点击事件就包含的鼠标的相关信息
        // 事件对象存在兼容问题 IE6，7，8 通过window.event

        // div.onclick = function(event) {
        //     console.log(event);
        // }
        // div.addEventListener('click', function(event) {
        //     console.log(event);
        // });

        // 常见事件对象的属性和方法
        // e.target 返回的是触发事件的元素（元素）
        // this 返回的是绑定事件的对象（元素）
        // 区别：e.target 点击了那个元素就返回那个元素 this 那个元素绑定了这个点击事件就返回那个元素
        div.addEventListener('click', function(e) {
            console.log(e.target);
            console.log(this);
        });

        var ul = document.querySelector('ul');
        // ul 绑定事件
        ul.addEventListener('click', function(e) {
            // this 指向ul
            console.log(this);
            // e.target 指向触发事件的对象（元素）谁触发事件 点击的是 li e.target 指向的就是li
            console.log(e.target);
            // 跟this 有个相似的属性 currentTarget (了解 IE678不兼容)
            // console.log(e.currentTarget);
        })

        // 兼容处理(了解)
        // div.onclick = function(e) {
        //     e = e || window.event;
        //     var target = e.target || e.srcElement;
        //     console.log(target);
        // }
    </script>
</body>

</html>